import store from '@/store/index.js'
import util from "@/common/util.js";
var request = {

	IPhttp: 'https://o2o.yun8848.com/fly',
	IPdev: 'http://192.168.1.155:56357', // 本地 http://192.168.1.155:56357   //https://192.168.4.109:56357
	IPtest: 'https://o2o.yun8848.com/fly', //  沙箱(测试环境)
	IPservice: 'https://vd.yun8848.com/fly', //  威店(正式发布环境

	header: {},
	token: undefined, //"178168be37c5dbadb303c4436f2c4e2d97cf5051",
	server: function(options) {
		// return; 
		var token1 = this.token;
		if (!this.IPhttp) {
			console.log('IPhttp请求地址为空,请配置请求地址！');
			return;
		} else {
			//console.log('请求地址》》》》' + this.IPhttp)
		}
		var service = this.IPhttp;
		var header = this.header;
		uni.getStorage({
			key: 'userInfo',
			success: function(res) {
				let userInfo = res.data;
				var phone = userInfo.phone;
				var newheader = {
					...header,
					...options.header
				}

				options.data.token = options.data.token || userInfo.token || token1;
				options.data.Params.softid = options.data.Params.softid || userInfo.softid;
				//#ifdef APP-PLUS
				options.data.Params.client_no = '27';
				options.data.Params.clientflag = 1;
				options.data.client_no = '27';
				options.data.clientflag = 1;
				//#endif
				uni.request({
					url: options.url.indexOf('http://') >= 0 ? options.url : service + options.url, //String	是		开发者服务器接口地址	' || options.url, //String	是		开发者服务器接口地址	
					params: options.params,
					data: options.data, //Object/String/ArrayBuffer	否		请求的参数	App（自定义组件编译模式）不支持ArrayBuffer类型
					header: options.header ? newheader : header, //Object	否		设置请求的 header，header 中不能设置 Referer。	H5端会自动带上cookie不可手动覆盖
					method: options.method, //String	否	GET	有效值详见下方说明	
					timeout: options.timeout, //Number	否	30000	超时时间，单位 ms	微信小程序（2.10.0）、支付宝小程序
					dataType: options.dataType || 'json', //String	否	json	如果设为 json，会尝试对返回的数据做一次 JSON.parse	
					responseType: options.responseType || 'text', //String	否	text	设置响应的数据类型。合法值：text、arraybuffer	App和支付宝小程序不支持
					sslVerify: options.sslVerify, //Boolean	否	true	验证 ssl 证书	仅App安卓端支持（HBuilderX 2.3.3+）
					withCredentials: options.withCredentials, //Boolean	否	false	跨域请求时是否携带凭证（cookies）	仅H5支持（HBuilderX 2.6.15+）
					success: options.success, //Function	否		收到开发者服务器成功返回的回调函数	
					fail: options.fail, //Function	否		接口调用失败的回调函数	
					complete(complete) {
						uni.hideLoading()
						//console.log(complete);
						//服务端很吊 不鸟你,没状态
						if (typeof complete.statusCode == 'undefined') {
							if (complete.errMsg.indexOf('request:fail') > -1) {
								if (options.url == '/dwzy/AppLogin' || options.url == '/dwzy/AppLogout') {
									uni.showModal({
										title: '服务器没状态：强制登录',
										content: "登录服务器失败",
										confirmText: '开挂登录！',
										success: function(res) {
											if (res.confirm) {
												uni.redirectTo({
													url: '/pages/tab2/index'
												})
											} else if (res.cancel) {
												console.log('用户点击取消');
											}
										}
									});
									return;
								} else {
									////一般的普通接口没状态
									uni.showToast({
										icon:"none",
										title: '服务器正在神游~~~'
									})
									// uni.showModal({
									// 	title: '服务器没状态:接口不稳定',
									// 	content: JSON.stringify(complete),
									// 	confirmText: '知道了',
									// 	success: function(res) {
									// 		if (res.confirm) {

									// 		}
									// 	}
									// });
								}
							} else {
								////一般的普通接口没状态
								uni.showToast({
									icon:"none",
									title: complete.data.resultNote
								})
								// uni.showModal({
								// 	title: complete.data.resultNote,
								// 	content: JSON.stringify(complete),
								// 	confirmText: '知道了',
								// 	success: function(res) {
								// 		if (res.confirm) {

								// 			uni.redirectTo({
								// 				url: "/pages/login/login"
								// 			});
								// 			return;

								// 		}
								// 	}
								// });
								// return;
							}

						}


						//与服务端约定状态不对 
						if (complete.data) {
							if (complete.data.result != 0) {
								if (options.url == '/dwzy/AppLogin') {
									////有返回交给业务逻辑
									// uni.showModal({
									// 	title: '强制登录',
									// 	content: complete.data.resultNote,
									// 	confirmText: '开挂登录！',
									// 	success: function(res) {
									// 		if (res.confirm) {
									// 			uni.redirectTo({
									// 				url: '/pages/tab2/index'
									// 			})
									// 		} else if (res.cancel) {
									// 			console.log('用户点击取消');
									// 		}
									// 	}
									// });
									// return;
								} else {
									//不是登录而提示 token校验
									var int = complete.data.resultNote.indexOf('token') > -1 ? 1 : -1 || complete.data.resultNote.indexOf(
										'密码不正确') > -1 ? 1 : -1;
									if (int > -1) {
										uni.showModal({
											title: complete.data.resultNote,
											content: JSON.stringify(complete),
											confirmText: '返回登录',
											success: function(res) {
												if (res.confirm) {

													uni.redirectTo({
														url: "/pages/login/login"
													});
													return;

												}
											}
										});
										return;
									} else {
										////一般的普通接口没状态
										uni.showToast({
											icon:"none",
											title: complete.data.resultNote
										})
										// uni.showModal({
										// 	title: complete.data.resultNote,
										// 	content: JSON.stringify(complete),
										// 	confirmText: '知道了',
										// 	success: function(res) {
										// 		if (res.confirm) {


										// 		}
										// 	}
										// });
									}
								}
							}
						}
						if (options.complete) {
							options.complete(complete) //	Function	否		接口调用结束的回调函数（调用成功、失败都会执行）
						}
					}
				})
				//--uni.request---结束
			},
			fail(reeor) {
				//#ifdef APP-PLUS
				options.data.Params.client_no = '27';
				options.data.Params.clientflag = 1;
				options.data.client_no = '27';
				options.data.clientflag = 1;
				//#endif
				uni.request({
					url: options.url.indexOf('http://') >= 0 ? options.url : service + options.url, //String	是		开发者服务器接口地址	' || options.url, //String	是		开发者服务器接口地址	
					params: options.params,
					data: options.data, //Object/String/ArrayBuffer	否		请求的参数	App（自定义组件编译模式）不支持ArrayBuffer类型
					header: options.header, //Object	否		设置请求的 header，header 中不能设置 Referer。	H5端会自动带上cookie不可手动覆盖
					method: options.method, //String	否	GET	有效值详见下方说明	
					timeout: options.timeout, //Number	否	30000	超时时间，单位 ms	微信小程序（2.10.0）、支付宝小程序
					responseType: options.responseType, //String	否	text	设置响应的数据类型。合法值：text、arraybuffer	App和支付宝小程序不支持
					sslVerify: options.sslVerify, //Boolean	否	true	验证 ssl 证书	仅App安卓端支持（HBuilderX 2.3.3+）
					withCredentials: options.withCredentials, //Boolean	否	false	跨域请求时是否携带凭证（cookies）	仅H5支持（HBuilderX 2.6.15+）
					success: options.success, //Function	否		收到开发者服务器成功返回的回调函数	
					fail: options.fail, //Function	否		接口调用失败的回调函数	
					complete(complete) {
						uni.hideLoading()
						//console.log('-有Token-options.url---报错了-------->>>>-------', complete);
						if (typeof complete.statusCode == 'undefined') {
							if (complete.errMsg.indexOf('request:fail') > -1) {
								if (options.url == '/dwzy/AppLogin' || options.url == '/dwzy/AppLogout') {
									uni.showModal({
										title: '服务器没状态：强制登录',
										content: "登录服务器失败",
										confirmText: '开挂登录！',
										success: function(res) {
											if (res.confirm) {
												uni.redirectTo({
													url: '/pages/tab2/index'
												})
											} else if (res.cancel) {
												console.log('用户点击取消');
											}
										}
									});
									return;
								} else {
									////一般的普通接口没状态
									uni.showToast({
										icon:"none",
										title: '服务器正在神游~~~'
									})
									// uni.showToast({
									// 	title: '服务器没状态:接口不稳定',
									// 	content: JSON.stringify(options),
									// 	confirmText: '-_-...',
									// 	success: function(res) {
									// 		if (res.confirm) {

									// 		}
									// 	}
									// });
								}
							}

						}

						//与服务端约定状态不对 
						if (complete.data) {
							if (complete.data.result != 0) {
								if (options.url == '/dwzy/AppLogin') {
									////有返回交给业务逻辑
									// uni.showModal({
									// 	title: '强制登录',
									// 	content: complete.data.resultNote,
									// 	confirmText: '开挂登录！',
									// 	success: function(res) {
									// 		if (res.confirm) {
									// 			uni.redirectTo({
									// 				url: '/pages/tab2/index'
									// 			})
									// 		} else if (res.cancel) {
									// 			console.log('用户点击取消');
									// 		}
									// 	}
									// });
									// return;
								} else {
									//不是登录而提示 token校验
									var int = complete.data.resultNote.indexOf('token') > -1 ? 1 : -1 || complete.data.resultNote.indexOf(
										'密码不正确') > -1 ? 1 : -1;
									if (int > -1) {
										uni.showModal({
											title: complete.data.resultNote,
											content: JSON.stringify(options),
											confirmText: '返回登录',
											success: function(res) {
												if (res.confirm) {

													uni.redirectTo({
														url: "/pages/login/login"
													});
													return;
												}
											}
										});
										return;
									} else {
										////一般的普通接口没状态
										uni.showToast({
											icon:"none",
											title: complete.data.resultNote
										})
										// uni.showModal({
										// 	title: complete.data.resultNote,
										// 	content: JSON.stringify(options),
										// 	confirmText: '知道了',
										// 	success: function(res) {
										// 		if (res.confirm) {}
										// 	}
										// });
									}
								}
							}
						}
						if (options.complete) {
							options.complete(complete) //	Function	否		接口调用结束的回调函数（调用成功、失败都会执行）
						}
					}
				})
			}
		});
	}

}
module.exports = request;
